The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Sophisticated, modern DVRs are capable of scheduling the recordings of programs that are to be televised some time in the future. If a DVR user is interested in recording all episodes of a televised series, then the DVR user can instruct his DVR to get a “season pass” for that series. In response to such an instruction, the DVR automatically determines, from electronic programming guide (“EPG”) data, times at which episodes of that series are going to be televised in the future. Usually, whenever an episode of the selected series is about to be broadcasted, the DVR automatically tunes to the channel on which the episode is going to be broadcasted and records that episode on the DVR's hard disk drive. For as long as the recorded episode remains on the DVR's hard disk drive, the DVR's user can instruct the DVR to replay the episode to the user's television. Conveniently, this allows the DVR user to watch programs in which the user is interested at times other than those program's broadcasting times. The DVR user does not even need to know, beforehand, the exact times at which those programs are going to be broadcasted.
As used herein, a “program” is any content, visual and/or audible, that is presented through a television's display and/or speakers. For example, a program might be an episode of a multi-episode series, a movie, a sporting event, or a news presentation, although this is not an exclusive list of “programs.” When a DVR schedules a program for future recording, the DVR attempts to add the program to a “to do” list that the DVR maintains within the DVR's own storage mechanisms. Whenever a program on the DVR's “to do” list is broadcasted, the DVR automatically records that program.
However, before the DVR adds a program to the DVR's “to do” list, the DVR determines whether any part of that program is going to be broadcasted at the same time that any other program, already on the “to do” list, is going to be broadcasted. If the DVR is only capable of recording one program at a time (as many DVRs are), and if any part of the “new” program that the DVR is trying to add to the DVR's “to do” list is going to be broadcasted during the same time interval in which another program already on the “to do” list is going to be broadcasted, then those two program conflict with each other. Before the DVR can add the “new” program to its “to do” list, the DVR needs to resolve the conflict between the programs.
There may be multiple ways in which a DVR can resolve a conflict between programs. For example, at the time that the DVR detects a conflict, the DVR may inform the DVR user that the conflicting programs cannot both be recorded because they will be broadcasted at time intervals that overlap at least partially. The DVR may ask the DVR user to select one or the other of the conflicting programs. The DVR places (or maintains) the selected program on the DVR's “to do” list. The DVR removes the non-selected program from (or refrains from adding the non-selected program to) the DVR's “to do” list. If there are multiple episodes of a series to which the non-selected program belongs, then the DVR may give the DVR user the option of scheduling the recording of all episodes of the series that do not conflict with programs that are already on the “to do” list.
In order to provide this option, a DVR may maintain a “priority list” that contains multiple “season passes” that the DVR user has selected. Each “season pass” represents a series whose episodes the DVR user would like the DVR to record automatically. The “season passes” in the “priority list” are maintained in ranked order. If the recording of a program from one “season pass” conflicts with the recording of a program from another “season pass,” then the DVR places the program from the higher-ranked “season pass” on the DVR's “to do” list, and refrains from placing the program from the lower-ranked “season pass” on the DVR's “to do” list.
A DVR user may instruct the DVR to change the rankings of “season passes” that are in the DVR's “priority list.” Such a change can occur in response to the DVR user's addition of a new “season pass” to the “priority list,” for example. When “season passes” are re-ranked, for whatever reason, the DVR responsively re-determines which programs ought to be on the “to do” list. The re-ranking of “season passes” in the “priority list” will often cause the DVR to remove some programs from the “to do” list and add other programs to the “to do” list. This can be a computationally intensive task. If a DVR does not have significant processing resources, then this task can occupy the DVR for a significant period of time—during which the DVR might not be able to perform certain other tasks. However, if the DVR is constructed with significant processing resources, then the monetary expense of the DVR may increase significantly, making the DVR less attractive to potential DVR purchasers. Additionally, if the DVR is part of a set-top box that performs many functions, then the set-top box might only allow the DVR part to utilize a small fraction of the set-top box's processing resources.